【速報】デバイスのデータストア向けの新機能「Amplify DataStore」が公開されました! #reinvent
Amplify DataStore
re:Invent 2019期間中に、Amplifyの新機能「Amplify DataStore」が発表されました!現在、JavaScript版はリリース済み、iOS / Android版はプレビューにて試すことができます。
- Introducing the Amplify DataStore, a persistent storage engine that synchronizes data between apps and the cloud
- Amplify DataStore – Simplify Development of Offline Apps with GraphQL | AWS News Blog
クエリ検索可能な形でデバイス上にデータを格納することができる機能です。Web, IoT, iOS, Android, ReactNativeなどで利用できます。
オフラインでデータを扱う感覚で使える
Amplify DataStoreは、オンラインとオフラインの双方でのデータの共有、および分散のためのプログラミングモデルを提供します。これによって、開発者はローカルでデータを扱うような感覚で、簡単に分散されたデータを扱うことができます。
以前から、オフラインでデータを扱うというユースケースは、AppSyncではクラウドから取得した結果をデバイスにキャッシュとして保存するようにして対応してきました。しかしながら、デバイスがオフラインの場合にアプリで使用できるデータはキャッシュのコンテンツのみでした。
Amplify DataStoreでは、デバイス向けの永続的なストレージとして、そしてスタンドアロンのローカルストレージとして機能します。上述のユースケース以外にも様々なユースケースに対応することができます。例えばチャットルーム、ホワイトボード、ダッシュボードのオフラインおよびリアルタイムの更新時にサービスリクエストを検索、作成、操作できるフィールドサービスアプリから、ネットワークを回避する顔認識アルゴリズムを必要とするような高性能ユースケースにまで及びます。MLモデルをローカルで同期し、ネットワーク使用率を最適化することにより、遅延を収集します。
また、Amplify DataStoreはスタンドアロンで動作しますが、AWS AppSyncと組み合わせるとより効果的に作用します。ネットワーク接続が利用可能な場合はAppSyncと透過的に同期し、データのバージョン管理を自動で行い、またコンフリクトの検出と解決を実装できます。
いますぐ利用可能!
Amplify DataStoreは単独で利用可能なOSSとして提供されます。つまりバックエンドが必ずしもAWSでなくても利用できるということです。Realm のような感覚で使えるもの、と思ってもらえると良いかもしれません。
サンプルコードも公開されているので、どのように動作するのか参考にしながら実装することができます。